home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 21 / Cream of the Crop 21 (Terry Blount) (October 1996).iso / program / libkb100.zip / LIBKB-1.00 / CONFIG / LINUX / ELF_SO.MK < prev   
Text File  |  1996-07-23  |  2KB  |  62 lines

  1. #
  2. # Makefile for Linux ELF shared library 
  3. #
  4. # libkb -- a free, advanced and portable low-level keyboard library
  5. # Copyright (C) 1995, 1996 Markus Franz Xaver Johannes Oberhumer
  6. # For conditions of distribution and use, see copyright notice in kb.h 
  7. #
  8.  
  9.  
  10. # /***********************************************************************
  11. # // imported vars:
  12. # //    $(lib_name) $(major_shared) $(minor_shared)
  13. # //    $(SRCS)
  14. # //    $(INSTALL) $(INSTALL_LIBDIR)
  15. # //
  16. # // exported vars:
  17. # //    $(SHARED_LIB) $(SHARED_OBJS) $(SHARED_CFLAGS)
  18. # //
  19. # // exported targets: 
  20. # //    shared_lib  shared_lib_install  shared_lib_clean
  21. # //    $(SHARED_LIB) 
  22. # //
  23. # ************************************************************************/
  24.  
  25. .PHONY: shared_lib shared_lib_install shared_lib_clean
  26.  
  27. SHARED_LIB = lib$(lib_name).so.$(major_shared).$(minor_shared)
  28.  
  29. SHARED_OBJS = $(SRCS:%.c=%.so)
  30.  
  31. SHARED_CFLAGS += -fPIC
  32.  
  33. %.so : %.c
  34.     $(COMPILE.c) $(SHARED_CFLAGS) $< $(OUTPUT_OPTION)
  35.  
  36.  
  37. $(SHARED_LIB): $(SHARED_OBJS)
  38.     gcc -shared -Wl,-soname,lib$(lib_name).so.$(major_shared) -o $(SHARED_LIB) $(SHARED_OBJS)
  39.     chmod a+x $(SHARED_LIB)
  40.     $(RM) lib$(lib_name).so.$(major_shared)
  41.     ln -s $(SHARED_LIB) lib$(lib_name).so.$(major_shared)
  42.     $(RM) lib$(lib_name).so
  43.     ln -s lib$(lib_name).so.$(major_shared) lib$(lib_name).so
  44.  
  45. shared_lib: $(SHARED_LIB)
  46.  
  47. shared_lib_clean:
  48.     $(RM) $(SHARED_LIB) lib$(lib_name).so.$(major_shared) lib$(lib_name).so $(SHARED_OBJS)
  49.  
  50.  
  51. # /***********************************************************************
  52. # // installation
  53. # ************************************************************************/
  54.  
  55. shared_lib_install: $(SHARED_LIB)
  56.     $(INSTALL) $^ $(INSTALL_LIBDIR)/
  57.     $(RM) $(INSTALL_LIBDIR)/lib$(lib_name).so.$(major_shared)
  58.     ln -s $(INSTALL_LIBDIR)/$(SHARED_LIB) $(INSTALL_LIBDIR)/lib$(lib_name).so.$(major_shared)
  59.     $(RM) $(INSTALL_LIBDIR)/lib$(lib_name).so
  60.     ln -s $(INSTALL_LIBDIR)/lib$(lib_name).so.$(major_shared) $(INSTALL_LIBDIR)/lib$(lib_name).so
  61.  
  62.